package com.easylinkin.linkappapi.tenant.entity;

import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

import java.util.Date;
import java.util.Set;


/**
 * <p>
 * 空间
 * </p>
 *
 * @author liuming
 * @since 2020-04-14
 */
@ApiModel("租户实体类")
@TableName("linkapp_tenant")
@Data
public class LinkappTenant extends Model<LinkappTenant> {

	private static final long serialVersionUID = 1L;

	@TableId("id")
	@ApiModelProperty("主键ID")
	@Length(max = 32, message = "id 超长")
	private String id;

	@ApiModelProperty("租户ID")
	@TableField("tenant_id")
	private String tenantId;

	@ApiModelProperty("appId")
	@TableField("app_id")
	private String appId;

	@ApiModelProperty("appKey")
	@TableField("app_key")
	private String appKey;

	@ApiModelProperty("app类型")
	@TableField("app_type")
	private String appType;

	@ApiModelProperty("项目ID")
	@TableField("project_id")
	private String projectId;

	@ApiModelProperty("名称")
	@TableField("name")
	private String name;

	@ApiModelProperty("电话")
	@TableField("telephone")
	private String telephone;

	@ApiModelProperty("邮箱")
	@TableField("email")
	private String email;

	@ApiModelProperty("租户编码")
	@TableField("code")
	private String code;

	/**
	 * 0-逻辑已删除，1-存在
	 */
	@ApiModelProperty("逻辑删除状态")
	@TableField("status")
	private String status;

	@ApiModelProperty("备注")
	@TableField("remark")
	private String remark;

	@TableField("create_time")
	private Date createTime;

	@TableField("creator")
	private String creator;

	@TableField("modifier")
	private String modifier;

	@TableField("modify_time")
	private Date modifyTime;

	@ApiModelProperty("个性化ID")
	@TableField("personality_id")
	private String personalityId;

	@ApiModelProperty("平台项目名称")
	@TableField("platform_project_name")
	private String platformProjectName;

	@ApiModelProperty("平台账户")
	@TableField("platform_account")
	private String platformAccount;

	@ApiModelProperty("平台账户名称")
	@TableField("platform_account_name")
	private String platformAccountName;

	@ApiModelProperty("应用行业类型")
	@TableField("app_industry_type")
	private String appIndustryType;

	/**
	 * 预计开工时间
	 */
	@TableField(value = "estimate_time",updateStrategy = FieldStrategy.IGNORED)
	private Date estimateTime;

	/**
	 * 预计竣工时间
	 */
	@TableField(value = "completion_time",updateStrategy = FieldStrategy.IGNORED)
	private Date completionTime;

	/**
	 * 建设单位
	 */
	@TableField("construction_unit")
	private String constructionUnit;

	/**
	 * 招标单位
	 */
	@TableField("bidding_unit")
	private String biddingUnit;

	/**
	 * 项目地点
	 */
	@TableField("location")
	private String location;

	/**
	 * 项目说明
	 */
	@TableField("project_desc")
	private String projectDesc;

	/**
	 * 项目面积
	 */
	@TableField("area")
	private Double area;

	/**
	 * 项目类型 1代管 2代建
	 */
	@TableField("project_type")
	private Integer projectType;

	/**
	 * 建设状态 1待建设 2建设中 3已完工 4停工中
	 */
	@TableField("project_status")
	private Integer projectStatus;

	/**
	 * 实际开工时间
	 */
	@TableField(value = "actual_start_time",updateStrategy = FieldStrategy.IGNORED)
	private Date actualStartTime;

	/**
	 * 实际完工时间
	 */
	@TableField(value = "actual_completion_time",updateStrategy = FieldStrategy.IGNORED)
	private Date actualCompletionTime;

	/**
	 * 项目金额
	 */
	@TableField("project_amount")
	private Double projectAmount;

	/**
	 * 施工单位
	 */
	@TableField("shigong_unit")
	private String shigongUnit;

	/**
	 * 设计单位
	 */
	@TableField("design_unit")
	private String designUnit;

	/**
	 * 监理单位
	 */
	@TableField("construction_control_unit")
	private String constructionControlUnit;

	/**
	 * 勘查单位
	 */
	@TableField("exploration_unit")
	private String explorationUnit;


	/**
	 * 项目区域
	 */
	@TableField("project_area")
	private String projectArea;


	/**
	 * 质量创优等级，0国家级，1省级，2市级
	 */
	@TableField("quality_excellence_level")
	private Integer qualityExcellenceLevel;


	/**
	 * 安全创优等级，0国家级，1省级，2市级
	 */
	@TableField("safety_excellence_level")
	private Integer safetyExcellenceLevel;

	/**
	 * 经度
	 */
	@TableField("longitude")
	private String longitude;

	/**
	 * 纬度
	 */
	@TableField("latitude")
	private String latitude;

	/**
	 * 项目经理
	 */
	@TableField("project_manager_")
	private String projectManager;

	/**
	 * 项目经理电话
	 */
	@TableField("project_manager_phone_")
	private String projectManagerPhone;

	/**
	 * 技术总工
	 */
	@TableField("tech_engineer_")
	private String techEngineer;

	/**
	 * 技术总工电话
	 */
	@TableField("tech_engineer_phone_")
	private String techEngineerPhone;

	/**
	 * 产品经理
	 */
	@TableField("product_manager_")
	private String productManager;

	/**
	 * 产品经理电话
	 */
	@TableField("product_manager_phone_")
	private String productManagerPhone;

	/**
	 * 质量目标奖
	 */
	@TableField("quality_goal_award_")
	private String qualityGoalAward;

	/**
	 * 安全创优奖
	 */
	@TableField("safe_excellence_award_")
	private String safeExcellenceAward;

	/**
	 * 城建管理平台项目编号
	 */
	@TableField("project_code_")
	private String projectCode;

	/**
	 * 档案号
	 */
	@TableField("project_archive_no")
	private String projectArchiveNo;
	/**
	 * 项目图片
	 */
	@TableField("project_img_url")
	private String projectImgUrl;
	/**
	 * 项目视频
	 */
	@TableField("project_video_url")
	private String projectVideoUrl;
	/**
	 * 项目简称
	 */
	@TableField("project_short_name")
	private String projectShortName;
	/**
	 * 涉铁类别 1上跨 2下穿 3临近
	 */
	@TableField("project_cross_type")
	private Integer projectCrossType;
	/**
	 * 可研批复时间
	 */
	@TableField("project_confirm_time")
	private Date projectConfirmTime;
	/**
	 * 初设批复时间
	 */
	@TableField("project_init_confirm_time")
	private Date projectInitConfirmTime;
	/**
	 * 施工图批复时间
	 */
	@TableField("project_design_confirm_time")
	private Date projectDesignConfirmTime;
	/**
	 * 计划工期
	 */
	@TableField("project_plan_duration")
	private String projectPlanDuration;
	/**
	 * 建设单位
	 */
	@TableField("project_build_unit")
	private String projectBuildUnit;
	/**
	 * 施工单位负责人
	 */
	@TableField("project_shigong_unit_leader")
	private String projectShigongUnitLeader;
	/**
	 * 涉及线别
	 */
	@TableField("project_line")
	private String projectLine;
	/**
	 * 区间及里程
	 */
	@TableField("project_interval_distance")
	private String projectIntervalDistance;
	/**
	 * 工程进展
	 */
	@TableField("project_progress")
	private String projectProgress;
	/**
	 * 影响运输
	 */
	@TableField("project_transport")
	private String projectTransport;
	/**
	 * 存在问题
	 */
	@TableField("project_problem")
	private String projectProblem;
	/**
	 * 已付合同额
	 */
	@TableField("project_paid_amount")
	private Double projectPaidAmount;
	/**
	 * 合同工期
	 */
	@TableField("project_contract_duration")
	private String projectContractDuration;

	/**
	 * 所属片区
	 */
	@TableField("belong_area")
	private String belongArea;

	/**
	 * 停工时的剩余竣工天数
	 */
	@TableField("surplus_day_upon_suspension")
	private Long surplusDayUponSuspension;

	/**
	 * 停工时的项目进度，小数，保留一位
	 */
	@TableField("progress_upon_suspension")
	private String progressUponSuspension;

	/**
	 * 停工时的状态切换时间
	 */
	@TableField("status_change_time_upon_suspension")
	private Date statusChangeTimeUponSuspension;

	@ApiModelProperty("初始化账户")
	@TableField(exist=false)
	private String initAccount;

	@ApiModelProperty("用户名称")
	@TableField(exist=false)
	private String username;

	@ApiModelProperty("昵称")
	@TableField(exist=false)
	private String nickname;

	@ApiModelProperty("应用名称")
	@TableField(exist=false)
	private String applicationName;

	@ApiModelProperty("应用ID")
	@TableField(exist=false)
	private String applicationId;

	@ApiModelProperty("是否锁定")
	@TableField(exist=false)
	private String locked;

	@TableField(exist=false)
	private Set<String> ids;
}
